/**
 * flex 布局
 * 容器属性
 * flex-direction、flex-wrap、flex-flow、justify-content、align-items、align-content
 */
.flex-box{display: flex;display: -webkit-flex; /* Safari */}

// flex-direction: row | row-reverse | column | column-reverse;
// row（默认值）：主轴为水平方向，起点在左端。
// row-reverse：主轴为水平方向，起点在右端。
// column：主轴为垂直方向，起点在上沿。
// column-reverse：主轴为垂直方向，起点在下沿。
.flex-box.flex-direction-cloumn{ flex-direction:column }

// justify-content: flex-start | flex-end | center | space-between | space-around;
// center： 居中
// space-between：两端对齐，项目之间的间隔都相等。
// space-around：每个项目两侧的间隔相等
.flex-box.justify-content-center{justify-content:center};
.flex-box.justify-content-space-between{justify-content:space-between};
.flex-box.justify-content-space-around{justify-content:space-around};

// flex-wrap: nowrap | wrap | wrap-reverse;
// nowrap（默认）：不换行。
// wrap：换行，第一行在上方。
// wrap-reverse：换行，第一行在下方。
.flex-box.flex-wrap{flex-wrap:wrap;}

// align-items属性定义项目在交叉轴上如何对齐。
// align-items: flex-start | flex-end | center | baseline | stretch;
// flex-start：交叉轴的起点对齐。
// flex-end：交叉轴的终点对齐。
// center：交叉轴的中点对齐。
// baseline: 项目的第一行文字的基线对齐。
// stretch（默认值）：如果项目未设置高度或设为auto，将占满整个容器的高度。
.flex-box.align-items-center{align-items: center;}
.flex-box.align-items-flex-end{align-items: flex-end;}

// align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线，该属性不起作用
// align-content: flex-start | flex-end | center | space-between | space-around | stretch;
// flex-start：与交叉轴的起点对齐。
// flex-end：与交叉轴的终点对齐。
// center：与交叉轴的中点对齐。
// space-between：与交叉轴两端对齐，轴线之间的间隔平均分布。
// space-around：每根轴线两侧的间隔都相等。所以，轴线之间的间隔比轴线与边框的间隔大一倍。
// stretch（默认值）：轴线占满整个交叉轴。
.flex-box.align-contenr-center{align-content: center;}
.flex-box.align-contenr-flex-end{align-content: flex-end;}

/**
 * flex 布局
 * 项目的属性
 * order、flex-grow、flex-shrink、flex-basis、flex、align-self
 */
// order属性定义项目的排列顺序。数值越小，排列越靠前，默认为0。
// flex-grow属性定义项目的放大比例，默认为0，即如果存在剩余空间，也不放大。
// flex-shrink属性定义了项目的缩小比例，默认为1，即如果空间不足，该项目将缩小。
// flex-basis属性定义了在分配多余空间之前，项目占据的主轴空间（main size）。浏览器根据这个属性，计算主轴是否有多余空间。它的默认值为auto，即项目的本来大小。
/**
 * flex属性是flex-grow, flex-shrink 和 flex-basis的简写，默认值为0 1 auto。后两个属性可选。
 * (建议优先使用这个属性，而不是单独写三个分离的属性，因为浏览器会推算相关值。)
 */
.flex-box{
	.flex-1{flex: 1;}
	.flex-2{flex: 2;}
	.flex-3{flex: 3;}
	.flex-4{flex: 4;}
	.flex-5{flex: 5;}
	.flex-6{flex: 6;}
	.flex-7{flex: 7;}
	.flex-8{flex: 8;}
	.flex-9{flex: 9;}
	.flex-10{flex: 10;}
	.flex-11{flex: 11;}
	.flex-12{flex: 12;}
	.flex-13{flex: 13;}
	.flex-14{flex: 14;}
	.flex-15{flex: 15;}
	.flex-16{flex: 16;}
}
// align-self属性允许单个项目有与其他项目不一样的对齐方式，可覆盖align-items属性。默认值为auto，表示继承父元素的align-items属性，如果没有父元素，则等同于stretch。
// align-self: auto | flex-start | flex-end | center | baseline | stretch;
.flex-box{.align-self-center{align-self: center;}.align-self-flex-end{align-self: flex-end;}}
